package com.opal.modules.costReportForm.service;

import com.opal.modules.costReportForm.entity.table.CartonCompanyDetailsWithBLOBs;
import com.opal.modules.costReportForm.entity.table.CartonPriceDetails;
import com.opal.modules.costReportForm.model.CartonData;
import com.opal.modules.costReportForm.model.CartonPriceDetailsRecord;

import java.util.List;

/**
 * 纸箱 sevice层
 */
public interface CartonDetailsService {
    /**
     * 根据条件获取easyui的表格数据
     * @param cartonData
     * @return
     */
    public Object onConditiongetCartonDetailsService(CartonData cartonData);

    /**
     * 根据类型和成品单据号获取相应的纸箱操作记录
     * @param cartonPriceDetailsRecord
     * @return
     */
    Object getCartonPriceDetailsRecordByTAndcostReportIdService(CartonPriceDetailsRecord cartonPriceDetailsRecord);

    /**
     * 若有id并数据库中有重复的进行更新，否则插入
     * @param cartonPriceDetailsRecords
     * @return
     */
    public int insertCartonPriceDetailsRecordService(List<CartonPriceDetailsRecord> cartonPriceDetailsRecords, String costReportId);

    /**
     * 根据成本报告和类型删除
     * @param costReportId
     */
    public int deleteCartonPriceDetailsRecordService(String costReportId, int i);

    /**
     * 根据成本报告
     * @param costReportId
     */
    public int deleteCartonPriceDetailsRecordService(String costReportId);

    /**
     * 根据sessiong的组织获取所有的公司名称
     * @return
     */
    Object getCartonCompanyService();

    /**
     * 根据公司id获取公司信息和纸箱价格
     * @param id
     * @return
     */
    Object getCartonCompanyAndPriceService(Long id);

    /**
     * 添加公司信息
     * @param companyDetailsWithBLOBs
     * @return
     */
    Object addCartonCompanyInfoService(CartonCompanyDetailsWithBLOBs companyDetailsWithBLOBs);

    /**
     * 根据id删除公司信息
     * @param id
     * @return
     */
    Object deleteCartonCompanyInfoService(Long id);

    /**
     * 根据id修改当前的公司信息
     * @param companyDetailsWithBLOBs
     * @return
     */
    Object updateCartonCompanyInfoService(CartonCompanyDetailsWithBLOBs companyDetailsWithBLOBs);

    /**
     * 保存纸箱单价
     * @param cartonPriceDetails
     * @return
     */
    Object saveCartonPriceService(CartonPriceDetails cartonPriceDetails);

    /**
     * 修改纸箱单价
     * @param cartonPriceDetails
     * @return
     */
    Object updateCartonPriceService(CartonPriceDetails cartonPriceDetails);

    /**
     * 根据id删除纸箱单价数据
     */
    Object deleteCartonPriceService(Long id);

    /**
     * 根据公司姓名为combobox组件获取公司信息
     * @param companyName 公司姓名
     * @return
     */
    Object getCartonCompanyCompanyNameService(String companyName);

    /**
     * 通过公司姓名和公司报价单号查询相应的数据
     * @param quotationCode
     * @param quotationCode
     * @return
     */
    Object getCartonCompanyByNameAndCodeService(String companyName, String quotationCode);
}
